namespace Umbraco.Cms.Core;

public static partial class Constants
{
    /// <summary>
    ///     Defines the alias identifiers for Umbraco's core application sections.
    /// </summary>
    public static class Applications
    {
        /// <summary>
        ///     Application alias for the content section.
        /// </summary>
        public const string Content = "content";

        /// <summary>
        ///     Application alias for the packages section.
        /// </summary>
        public const string Packages = "packages";

        /// <summary>
        ///     Application alias for the media section.
        /// </summary>
        public const string Media = "media";

        /// <summary>
        ///     Application alias for the members section.
        /// </summary>
        public const string Members = "member";

        /// <summary>
        ///     Application alias for the settings section.
        /// </summary>
        public const string Settings = "settings";

        /// <summary>
        ///     Application alias for the translation section.
        /// </summary>
        public const string Translation = "translation";

        /// <summary>
        ///     Application alias for the users section.
        /// </summary>
        public const string Users = "users";

        /// <summary>
        ///     Application alias for the forms section.
        /// </summary>
        public const string Forms = "forms";
    }

    /// <summary>
    ///     Defines the alias identifiers for Umbraco's core trees.
    /// </summary>
    public static class Trees
    {
        /// <summary>
        ///     alias for the content tree.
        /// </summary>
        public const string Content = "content";

        /// <summary>
        ///     alias for the content blueprint tree.
        /// </summary>
        public const string ContentBlueprints = "contentBlueprints";

        /// <summary>
        ///     alias for the member tree.
        /// </summary>
        public const string Members = "member";

        /// <summary>
        ///     alias for the media tree.
        /// </summary>
        public const string Media = "media";

        /// <summary>
        ///     alias for the datatype tree.
        /// </summary>
        public const string DataTypes = "dataTypes";

        /// <summary>
        ///     alias for the packages tree
        /// </summary>
        public const string Packages = "packages";

        /// <summary>
        ///     alias for the dictionary tree.
        /// </summary>
        public const string Dictionary = "dictionary";

        public const string Stylesheets = "stylesheets";

        /// <summary>
        ///     alias for the document type tree.
        /// </summary>
        public const string DocumentTypes = "documentTypes";

        /// <summary>
        ///     alias for the media type tree.
        /// </summary>
        public const string MediaTypes = "mediaTypes";

        /// <summary>
        ///     alias for the member type tree.
        /// </summary>
        public const string MemberTypes = "memberTypes";

        /// <summary>
        ///     alias for the member group tree.
        /// </summary>
        public const string MemberGroups = "memberGroups";

        /// <summary>
        ///     alias for the template tree.
        /// </summary>
        public const string Templates = "templates";

        public const string RelationTypes = "relationTypes";

        public const string Languages = "languages";

        /// <summary>
        ///     alias for the user types tree.
        /// </summary>
        public const string UserTypes = "userTypes";

        /// <summary>
        ///     alias for the user permissions tree.
        /// </summary>
        public const string UserPermissions = "userPermissions";

        /// <summary>
        ///     alias for the users tree.
        /// </summary>
        public const string Users = "users";

        public const string Scripts = "scripts";

        public const string PartialViews = "partialViews";

        public const string LogViewer = "logViewer";

        public const string Webhooks = "webhooks";

        public static class Groups
        {
            public const string Settings = "settingsGroup";

            public const string Templating = "templatingGroup";

            public const string ThirdParty = "thirdPartyGroup";
        }

        // TODO: Fill in the rest!
    }
}
